package com.xc.file.enums;

import com.xc.core.exception.OperateException;

/**
 * <p>故障代码</p>
 *
 * @author xc
 * @version v1.0.0
 */
public enum FailCode {
    //服务器异常,以s开头
    RENAME_FAIL("sf003", "重命名失败，你的文件可能未上传成功，请联系管理员！"),
    DELETE_FILE_FAIL("sf004", "删除文件失败,请联系管理员！"),
    INIT_CREATE_FOLDER_FAIL("sf005", "初始化创建文件夹失败!"),
    INIT_CREATE_TEMP_FOLDER_FAIL("", "初始化创建临时文件夹失败！"),
    TEMP_FILE_CREATE_FAIL("sf006", "临时文件创建失败,请联系管理员！"),
    SERVER_SPACE_SHORTAGE("sf007", "服务器硬盘空间不足,请联系管理员！"),
    UPLOAD_FILE_FAIL("sf008", "上传文件失败,请联系管理员！"),
    DOWNLOAD_FILE_NOT_EXIST("sf009", "你下载的文件不存在,请联系管理员！"),
    UPLOAD_FILE_OVERTIME("sf010", "上传文件超时！"),
    SAFETY_CHAIN_CREATE_FAIL("sc003", "安全链接创建失败！"),
    SAFETY_CHAIN_UPDATE_FAIL("sc004", "安全链接更新失败！"),
    SAFETY_CHAIN_DELETE_FAIL("sc005", "安全链接删除失败！"),
    UPDATE_FILE_FAIL("sc006", "修改文件失败,请联系管理员！"),//已确认
    UPDATE_FOLDER_FAIL("sc007", "修改文件夹失败,请稍后重试！"),//已确认
    CREATE_FILE_FAIL("sc008", "创建文件失败,请联系管理员！"), //已确认
    CREATE_FOLDER_FAIL("sc009", "创建文件夹失败,请稍后重试！"),//已确认
    CREATE_USER_INFO_FAIL("sc011", "创建用户信息失败,请联系管理员！"),//已确认
    UPDATE_CLOUD_DISK_SPACE_FAIL("sc014", "修改网盘空间失败,请联系管理员！"),//已确认
    UPDATE_FREE_FLOW_FAIL("sc015", "修改可用流量失败,请联系管理员！"),//已确认
    CLOUD_DISK_SPACE_INFO_NOT_EXIST("sc016", "网盘空间信息不存在,请联系管理员！"),//已确认
    DELETE_FOLDER_FAIL("sc019", "删除文件夹失败,请联系管理员！"),//已确认
    CREATE_SHARE_FILE_FAIL("", "创建共享文件失败,请联系管理员！"),//已确认
    CREATE_FILE_SHARE_FILE_FAIL("", "创建共享文件关联信息失败,请联系管理员！"),//已确认
    DELETE_FILE_SHARE_FILE_FAIL("", "删除共享文件关联信息失败,请联系管理员！"),//已确认
    FILE_NO_SHARE_FILE("", "文件不是共享文件,请联系管理员！"),//已确认
    FOLDER_NO_FOLDER_FILE("", "文件夹不是共享文件夹,请联系管理员！"),//已确认
    UPDATE_SHARE_FILE_FAIL("", "修改共享文件文件失败,请联系管理员！"),
    CLOUD_DISK_SPACE_DATA_ERROR("", "云盘空间数据异常,请联系管理员！"),
    URL_ANALYSIS_ERROR("sg002", "url解析异常！"),
    SERVER_NOT_SPACE_AVAILABLE("s_001", "服务器空间不足,请联系管理员！"),
    CREATE_FILE_HASH_FAIL("", "创建文件hash失败,请联系管理员！"),
    FILE_HASH_NOT_EXIST("", "文件hash不存在，请联系管理员！"),
    NO_FILE_SERVICE_AVAILABLE("s_002", "没有可用的文件服务,请联系管理员！"),
    COMPRESS_FAIL_SERVER_SPACE_SHORTAGE("", "压缩失败，服务器硬盘空间不足,请联系管理员！"),
    REPLACE_FILE_FAIL("", "替换文件失败,请联系管理员！"),
    COPY_FOLDER_FAIL("", "复制文件夹失败！"),
    COPY_FILE_FAIL("", "复制文件失败！"),
    SHARE_VISIT_CODE_ERROR("", "共享访问code错误，请刷新重试！"),
    //操作异常，以o开头语
    PARAM_ERROR("of003", "参数错误！"),
    PACK_NAME_NOT_NULL("", "包名称不能为空！"),
    FILE_DATA_ERROR("of003", "你上传的文件数据错误！"),
    FOLDER_PATH_ERROR("", "文件夹路径错误！"),
    FILE_NOT_EMPTY("of004", "你上传的文件不能为空！"),
    NOT_OPERATE_AUTHORITY("oc001", "你没有操作权限！"), //已确认
    NOT_DATA_AUTHORITY("oc001", "你没有数据权限！"), //已确认
    NOT_MOVE_AUTHORITY("", "你没有移动权限，请选择复制文件！"),
    SIGN_INVALID("oc002", "签名已失效！"),
    SAFETY_CHAIN_NOT_EXIST("oc003", "安全链接信息不存在！"),
    SAFETY_CHAIN_REPEAT("", "安全连接重复！"),
    CANNOT_DOWN_MOVE("oc005", "不能向下级移动！"),
    NOT_MOVE_OTHERS_FOLDER("", "不能移动他人文件夹，请复制后再移动！"),
    NOT_TOWARDS_OTHERS_FOLDER_MOVE("", "不能向他人文件夹移动，请复制后再移动！"),
    NOT_MOVE_OTHERS_FILE("", "不能移动他人文件，请复制后再移动！"),
    NOT_CREATE_OTHERS_CDN("", "不能创建他人文件的Cdn！"),
    NOT_SHARE_OTHERS_FOLDER("", "不能共享他人文件夹，请复制后再共享！"),
    NOT_SHARE_OTHERS_FILE("", "不能共享他人文件，请复制后再共享！"),
    NOT_TOWARDS_OTHERS_FOLDER_SAVE("", "不能向他人文件夹保存！"),
    NOT_TOWARDS_OTHERS_FOLDER_UPLOAD("", "不能向他人文件夹上传！"),
    FILE_EXIST("oc006", "文件已存在！"),
    FOLDER_EXIST("oc007", "文件夹已存在！"),
    CANNOT_DOWN_COPY("oc008", "不能向下级复制！"),
    FILE_NOT_EXIST("oc009", "文件不存在！"),
    FOLDER_NOT_EXIST("oc010", "文件夹不存在！"),//已确认
    CLOUD_DISK_SPACE_SHORTAGE("oc011", "你的云盘空间不足！"),
    FREE_FLOW_SHORTAGE("oc012", "你的可用流量不足！"),
    SHARE_INFO_NOT_EXIST("", "共享信息不存在！"),//已确认
    DRAW_CODE_ERROR("", "你的提取码错误!"), //已确认
    PARENT_FOLDER_ERROR("", "父级目录错误，请无非法操作！"),
    SHARE_FILE_INVALID("", "共享文件已失效！"), //已确认
    PARENT_FOLDER_NOT_EXIST("", "父级文件夹不存在"), //已确认
    FOLDER_ID_NOT_NULL("", "文件夹id不能为空！"), //已确认
    SHARE_FILE_NOT_EXIST("", "共享文件不存在！"), // 已确认;
    CREATE_FILE_OVERTIME("", "创建文件超时！"),
    CREATE_HASH_CACHE_OVERTIME("", "创建hash缓存超时！"),
    DELETE_HASH_CACHE_OVERTIME("", "删除hash缓存超时！"),
    FILE_HASH_EXIST("", "文件hash已存在！"),
    NOT_VISIT_AUTHORITY("", "你没有访问权限！"),
    DOWNLOAD_CODE_ERROR("", "下载code错误，请刷新页面重试！"),
    CREATE_TEMP_HASH_CACHE_OVERTIME("", "创建临时hash缓存超时！"),
    STATE_ERROR("", "state错误!"),
    FIXED_NOT_NULL("", "固定的地址不能为空！"),
    FOLDER_PATH_NOT_NULL("", "文件夹路径不能为空！"),
    FOLDER_NAME_NOT_NULL("", "文件夹名称不能为空！"),
    TARGET_FOLDER_USER_ID_NOT_NULL("", "目标文件夹用户主键不能为空!"),
    TARGET_FOLDER_NOT_NULL("", "目标文件夹不存在！"),
    ACCOUNT_ERROR("", "账号错误！");


    /**
     * 错误code
     */
    private String code;
    /**
     * 消息
     */
    private String message;

    FailCode() {
    }

    FailCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public OperateException getOperateException() {
        return new OperateException(this.code, this.getMessage());
    }
}
